热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

负担|发生_负载均衡4层和7层对比

篇首语:本文由编程笔记#小编为大家整理,主要介绍了负载均衡-4层和7层对比相关的知识,希望对你有一定的参考价值。        

篇首语:本文由编程笔记#小编为大家整理,主要介绍了负载均衡-4层和7层对比相关的知识,希望对你有一定的参考价值。



     

       按照七层网络协议栈的层划分,负载均衡设备(软件)可以划分为 四层负载均衡和七层负载均衡;其中,四层是基于IP+Port,它能够对报文按照IP进行分发;七层是基于URL地址的服务器负载均衡,它能够针对七层报文内容进行解析,并根据其中的关键字进行逐包转发。

       四层负载均衡的典型代表是LVS,而七层负载均衡的典型代表则为nginx和HAproxy(其中HAproxy既可以做4层负载均衡又可以做七层负载均衡)。


       首先以常见的LVS DR模式来说明四层负载均衡的工作流程:

负载均衡-4层和7层对比_负载均衡

     如上图所示,LVS DR 四层负载均衡工作流程为:

    1. 客户端向负载均衡设备发出请求,源地址为客户端IP地址,目的地址为整个集群的VIP地址;

    2. 交换机转发客户端请求;

    3. LVS负载均衡器利用自带的算法(云眸为wrr)进行算法调度,将请求转发到后端的某一台真实Web服务器;

    4. 此时请求报文的源地址仍然为客户端的IP地址,目的地址为集群Vip地址,但是MAC地址已经被LVS负载均衡服务器更改为后端真实服务器的MAC地址;

    5. 后端真实Web服务器发出响应,源地址为集群Vip地址,目的地址为客户端IP地址,不通过LVS负载均衡服务器(报文仍然要通过交换机)直接与客户端发生联系并回应客户端最初发出的HTTP请求。



     然后再以常用的Nginx来举例说明七层负载均衡器的工作流程:

负载均衡-4层和7层对比_负载均衡_02


   如上图所示。七层负载均衡的工作流程如下:

    1. 客户端向Nginx发出请求,源地址为客户端ip地址,目的地址为集群VIP地址;

    2. 交换机转发请求;

    3. Nginx利用自身算法(如 rr wrr ip_hash)进行调度;

    4. 建立TCP连接,将客户端的请求发送到后端真实web服务器,此时源地址为客户端ip,目的地址为真实web服务的ip地址;

    5. Nginx向后端真实web服务器发出请求;

    6. 后端真实web服务器发出响应,此时源地址为后端真实服务器IP地址,目的地址为客户端IP地址;

    7. 报文经过Nginx时,源地址被还原为集群VIP地址,目的地址仍然为客户端IP地址。



     总结:

     四层负载均衡的优势在于面对大流量冲击的时候,报文只是单方面经过负载均衡器,负载均衡服务器的负担相对很小,不易成为网站或者系统的瓶颈;

     七层负载均衡在分流过程中能够对应用层协议进行深度识别,带来了更精细化均衡的可能;再加上http协议应用广泛,所以七层负载均衡的商用能力更强;而四层负载均衡因无法对七层业务实现内容转发,所以当前主流业务均采用 LVS+Nginx的方式进行负载均衡,从而充分利用两种的优势!


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了源码分析--ConcurrentHashMap与HashTable(JDK1.8)相关的知识,希望对你有一定的参考价值。  Concu ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 抖音服务器带宽有多大,才能供上亿人同时刷?
    最近看到一个有意思的提问:抖音服务器带宽有多大,为什么能够供那么多人同时刷?今天来给大家科普一下。 ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • PartI:取经处: http:www.ramkitech.com201210tomcat-clustering ... [详细]
  • 转瞬即是2015,是该总结一下了。----------------------------------------2014大事件前往梦都跳槽外企脱离单身-------------- ... [详细]
author-avatar
manly213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有